home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 142 / Gekkan Dennou Club - 2000.3 Vol. 142 (Japan).7z / Gekkan Dennou Club - 2000.3 Vol. 142 (Japan) (Track 1).bin / tools / s_tool / j25asm.s < prev    next >
Text File  |  1998-10-11  |  18KB  |  935 lines

  1.         .include    TNB.mac
  2.         .include    IOCSCALL.mac
  3.  
  4.         .globl        _egs_sub
  5. _egs_sub:
  6.     clr.w    -(sp)
  7.     move.w    #16,-(sp)
  8.     .dc.w    $FF23    *conctrl
  9.     addq.w    #4,sp
  10.     rts
  11.  
  12.  
  13. *-----------------------------------------------*
  14. *                        *
  15. *    GGSP16_64(VADDS,char)        *
  16. *    GGSP16_64_S(VADDS,char)        *
  17. *        S_TOOL25 専用            *
  18. *     bit 0-7    0-255 キャラナンバー    *
  19. *                        *
  20. *-----------------------------------------------*
  21.         .globl        _w_mtoi
  22.         .globl        _l_mtoi
  23. _w_mtoi:
  24.     move.l    4(sp),d0
  25.     ror.w    #8,d0
  26.     rts
  27. _l_mtoi:
  28.     move.l    4(sp),d0
  29.     ror.w    #8,d0
  30.     swap.w    d0
  31.     ror.w    #8,d0
  32.     rts
  33.  
  34. *-----------------------------------------------*
  35. *                        *
  36. *    GGSP16_64(VADDS,char)        *
  37. *    GGSP16_64_S(VADDS,char)        *
  38. *        S_TOOL25 専用            *
  39. *     bit 0-7    0-255 キャラナンバー    *
  40. *                        *
  41. *-----------------------------------------------*
  42.         .globl        _GGSP16_64
  43.         .globl        _GGSP16_64_S
  44.  
  45. _GGSP16_64:
  46.     link    a6,#0
  47.     suba.l    a1,a1
  48.     SUPER                *SUPER MODE
  49.     move.l    d0,-(sp)
  50.     movea.l    8(a6),a0        *a0= VRAM ADDS
  51.     move.l    12(a6),d0        *d0= CHAR
  52.     bsr    _GGP
  53.     move.l    (sp)+,d0
  54.     bmi    @f
  55.     movea.l    d0,a1
  56.     USER                *USER MODE
  57. @@:    unlk    a6
  58.     rts
  59.  
  60.  
  61. _GGSP16_64_S:
  62.     movea.l    4(sp),a0        *a0= VRAM ADDS
  63.     move.l    8(sp),d0        *d0= CHAR
  64.  
  65. _GGP:
  66.                     *a0= VRAM ADDS
  67.                     *d0= CHAR
  68.     movem.l    d3-d5,-(sp)
  69.     moveq    #$000F,d5
  70.     *======キャラクターアドレス計算
  71.     moveq    #0,d2            *d2.l=0
  72.     move.b    d0,d2            *d2=d0.b
  73.     lsl.l    #7,d2            *d2<<=7(*128)
  74.     movea.l    _GGSP16_64_BUFF(pc),a1    *キャラクターベースアドレス
  75.     adda.l    d2,a1            *a1+=d2   キャラクターアドレス.a
  76.     lea    _PalTable(pc),a2
  77.  
  78.                     *a0   = VADDS
  79.                     *a1   = キャラクターデータアドレス
  80.     move.l    #1024-8*2,d4        *d4=1024-16
  81.     moveq    #7,d3            *d3=7
  82. 1:
  83.     moveq    #3,d2            *d2=3
  84. 2:
  85.     *-- 右上
  86.     moveq    #0,d0            *d0.l=0
  87.     move.b    64(a1),d0        *d0.b=(a1)
  88.     move.w    d0,d1
  89.     lsr.w    #4,d0
  90.     add.w    d0,d0
  91.     move.w    (a2,d0.w),d0
  92.     swap    d0
  93.     move.w    d1,d0            *d0.b=(a1)
  94.     and.w    d5,d0
  95.     add.w    d0,d0
  96.     move.w    (a2,d0.w),d0
  97.     move.l    d0,8*2(a0)        *まとめて点を打つ
  98.     *-- 右下
  99.     moveq    #0,d0            *d0.l=0
  100.     move.b    96(a1),d0        *d0.b=(a1)
  101.     move.w    d0,d1
  102.     lsr.w    #4,d0
  103.     add.w    d0,d0
  104.     move.w    (a2,d0.w),d0
  105.     swap    d0
  106.     move.w    d1,d0            *d0.b=(a1)
  107.     and.w    d5,d0
  108.     add.w    d0,d0
  109.     move.w    (a2,d0.w),d0
  110.     move.l    d0,8*2+8*1024(a0)    *まとめて点を打つ
  111.     *-- 左下
  112.     moveq    #0,d0            *d0.l=0
  113.     move.b    32(a1),d0        *d0.b=(a1)
  114.     move.w    d0,d1
  115.     lsr.w    #4,d0
  116.     add.w    d0,d0
  117.     move.w    (a2,d0.w),d0
  118.     swap    d0
  119.     move.w    d1,d0            *d0.b=(a1)
  120.     and.w    d5,d0
  121.     add.w    d0,d0
  122.     move.w    (a2,d0.w),d0
  123.     move.l    d0,8*1024(a0)        *まとめて点を打つ
  124.     *-- 左上
  125.     moveq    #0,d0            *d0.l=0
  126.     move.b    (a1)+,d0        *d0.b=(a1)        最後だから インクリメントする
  127.     move.w    d0,d1
  128.     lsr.w    #4,d0
  129.     add.w    d0,d0
  130.     move.w    (a2,d0.w),d0
  131.     swap    d0
  132.     move.w    d1,d0            *d0.b=(a1)
  133.     and.w    d5,d0
  134.     add.w    d0,d0
  135.     move.w    (a2,d0.w),d0
  136.     move.l    d0,(a0)+        *まとめて点を打つ    最後だから インクリメントする
  137.     *---
  138.     dbra    d2,2b            *d2=d2-1; if d2!=-1 goto 2b
  139.     adda.l    d4,a0            *a0+=d4     y=y+1:x=0
  140.     dbra    d3,1b            *d3=d3-1; if d3!=-1 goto 1b
  141.     movem.l    (sp)+,d3-d5
  142.     rts
  143.  
  144.  
  145. *-----------------------------------------------*
  146. *                        *
  147. *    GGMESHES_13(VADDS)        *
  148. *        スーパーバイザ専用        *
  149. *        *VADDSの16×16をメッシュにする    *
  150. *                (color=$AD6A)    *
  151. *-----------------------------------------------*
  152.         .globl        _GGMESHES_13
  153.  
  154. _GGMESHES_13:
  155.     move.l    4(sp),a0
  156.     moveq    #16-1,d1
  157. 2:
  158.     movea.l    a0,a1
  159.     btst    #0,d1
  160.     beq    @f
  161.     addq.l    #2,a1
  162. @@:
  163.     moveq    #8-1,d0
  164. 1:    move.w    #$AD6A,(a1)
  165.     addq.l    #4,a1
  166.     dbra    d0,1b
  167.     lea    1024(a0),a0
  168.     dbra    d1,2b
  169.     rts
  170.  
  171. *-----------------------------------------------*
  172. *                        *
  173. *    GGREV_H(VADDA)            *
  174. *        スーパーバイザ専用        *
  175. *                (color=$AD6A)    *
  176. *-----------------------------------------------*
  177.         .globl        _GGREV_H
  178.         .globl        _GGREV_H_S
  179. _GGREV_H_S:
  180.     move.l    4(sp),a0
  181.     moveq    #12-1,d1
  182. 2:
  183.     moveq    #6-1,d0
  184. 1:    not.w    (a0)+
  185.     dbra    d0,1b
  186.     lea    1024-12(a0),a0
  187.     dbra    d1,2b
  188.     rts
  189.  
  190. _GGREV_H:
  191.     link    a6,#0
  192.     suba.l    a1,a1
  193.     IOCS    _B_SUPER
  194.     move.l    d0,-(sp)
  195.     *
  196.     move.l    8(a6),a0
  197.     moveq    #12-1,d1
  198. 2:
  199.     moveq    #6-1,d0
  200. 1:    not.w    (a0)+
  201.     dbra    d0,1b
  202.     lea    1024-12(a0),a0
  203.     dbra    d1,2b
  204.     *
  205.     move.l    (sp)+,d0
  206.     bmi    @f
  207.     movea.l    d0,a1
  208.     IOCS    _B_SUPER
  209. @@:
  210.     unlk    a6
  211.     rts
  212.  
  213.  
  214.  
  215.  
  216.  
  217. *-----------------------------------------------*
  218. *                        *
  219. *    TXHMOJI_S(x,y,fadds)        *
  220. *        スーパーバイザ専用        *
  221. *        *TVADDS に 6×12文字を書く    *
  222. *        * 半角のみ        color=1    *
  223. *                        *
  224. *-----------------------------------------------*
  225.         .globl        _TXHMOJI_S
  226. _TXHMOJI_S:
  227.     link    a6,#0
  228.     movem.l    d3-d6,-(sp)
  229.     lea    $E00000,a1
  230.     move.l    #$20000,d3
  231.     move.l    #$40000,d4
  232.     move.l    #$60000,d5
  233.     move.l    12(a6),d0
  234.     lsl.l    #7,d0        * x128
  235.     adda.l    d0,a1        * adds
  236.     move.l    8(a6),d0
  237.     lsr.l    #3,d0        * /8
  238.     adda.l    d0,a1        * adds
  239.     move.l    8(a6),d2
  240.     andi.l    #7,d2        * offset 値
  241.     *
  242.     move.l    16(a6),a0
  243.     addq.l    #4,a0        * データ
  244.     moveq    #12-1,d1
  245. 1:    *
  246.     move.b    (a0)+,d0
  247.     not.b    d0
  248.     ori.l    #$FFFFFF03,d0
  249.     ror.l    d2,d0        * ずらす
  250.     and.b    d0,(a1,d3.l)
  251.     not.b    d0
  252.     or.b    d0,(a1)
  253.     rol.l    #8,d0
  254.     and.b    d0,1(a1,d3.l)
  255.     not.b    d0
  256.     or.b    d0,1(a1)
  257.     lea    128(a1),a1    * y++
  258.     dbra    d1,1b
  259.     movem.l    (sp)+,d3-d6
  260.     unlk    a6
  261.     rts
  262.  
  263. *-----------------------------------------------*
  264. *                        *
  265. *    TXZMOJI_S(x,y,fadds)        *
  266. *        スーパーバイザ専用        *
  267. *        *TVADDS に 12×12文字を書く    *
  268. *        * 全角のみ        color=1    *
  269. *                        *
  270. *-----------------------------------------------*
  271.         .globl        _TXZMOJI_S
  272. _TXZMOJI_S:
  273.     link    a6,#0
  274.     movem.l    d3-d6,-(sp)
  275.     lea    $E00000,a1
  276.     move.l    #$20000,d3
  277.     move.l    #$40000,d4
  278.     move.l    #$60000,d5
  279.     move.l    12(a6),d0
  280.     lsl.l    #7,d0        * x128
  281.     adda.l    d0,a1        * adds
  282.     move.l    8(a6),d0
  283.     lsr.l    #3,d0        * /8
  284.     adda.l    d0,a1        * adds
  285.     move.l    8(a6),d2
  286.     andi.l    #7,d2        * offset 値
  287.     *
  288.     move.l    16(a6),a0
  289.     addq.l    #4,a0        * データ
  290.     moveq    #12-1,d1
  291. 1:    *
  292.     move.w    (a0)+,d0
  293.     not.w    d0
  294.     ori.l    #$FFFF000F,d0
  295.     ror.l    #8,d0
  296.     ror.l    d2,d0        * ずらす
  297.     and.b    d0,(a1,d3.l)
  298.     not.b    d0
  299.     or.b    d0,(a1)
  300.     rol.l    #8,d0
  301.     and.b    d0,1(a1,d3.l)
  302.     not.b    d0
  303.     or.b    d0,1(a1)
  304.     rol.l    #8,d0
  305.     and.b    d0,2(a1,d3.l)
  306.     not.b    d0
  307.     or.b    d0,2(a1)
  308.     lea    128(a1),a1    * y++
  309.     dbra    d1,1b
  310.     movem.l    (sp)+,d3-d6
  311.     unlk    a6
  312.     rts
  313.  
  314. *-----------------------------------------------*
  315. *                        *
  316. *    GGREV(ADDS,x,y)            *
  317. *                        *
  318. *-----------------------------------------------*
  319.         .globl        _GGREV
  320. _GGREV:
  321.     link    a6,#0
  322.     movem.l    d3-d6,-(sp)
  323.     suba.l    a1,a1
  324.     SUPER            *SUPER MODE
  325.     move.l    d0,-(sp)
  326.     movem.l    8(a6),d0-d2        *(d0=sous),d1=x,d2=y
  327.     movea.l    d0,a0            *sous adds
  328.     move.l    d1,d0            *d0=d1
  329.     add.l    d0,d0            *d0=d0*2
  330.     move.l    #1024,d5        *d5=1024
  331.     sub.l    d0,d5            *d5-=d0
  332.  
  333.     subq.l    #1,d2
  334.     subq.l    #1,d1
  335. 1:
  336.     move.l    d1,d0            *d0=x
  337. @@:    not.w    (a0)+
  338.     dbra    d0,@b            *d0=d0-1; if d0!=-1 goto _CHAINCOLOR_L2
  339.     adda.l    d5,a0
  340.     dbra    d2,1b            *d2=d2-1; if d2!=-1 goto _CHAINCOLOR_L1
  341.  
  342.     move.l    (sp)+,d0
  343.     bmi    @f
  344.     movea.l    d0,a1
  345.     USER
  346. @@:
  347.     movem.l    (sp)+,d3-d6
  348.     unlk    a6
  349.     rts
  350.  
  351.  
  352. *-----------------------------------------------*
  353. *                        *
  354. *    GGICON_ON(ADDS)            *
  355. *                        *
  356. *-----------------------------------------------*
  357.         .globl        _GGICON_ON_S
  358. _GGICON_ON_S:
  359.     move.l    4(a7),a0        *sous adds
  360.     lea    _PalTable(pc),a1
  361.     moveq    #16-1,d2
  362. 2:
  363.     moveq    #16-1,d1
  364. 1:
  365.     move.w    (a0),d0
  366.     cmp.w    $0E*2(a1),d0
  367.     bne    @f
  368.     move.w    $0B*2(a1),(a0)
  369.     bra    9f
  370. @@:
  371.     cmp.w    $0D*2(a1),d0
  372.     bne    @f
  373.     move.w    $0E*2(a1),(a0)
  374.     bra    9f
  375. @@:
  376.     cmp.w    $0C*2(a1),d0
  377.     bne    @f
  378.     move.w    $0F*2(a1),(a0)
  379.     bra    9f
  380. @@:
  381.     cmp.w    $0B*2(a1),d0
  382.     bne    @f
  383.     move.w    $0A*2(a1),(a0)
  384.     bra    9f
  385. @@:
  386. 9:
  387.     addq.l    #2,a0
  388.     dbra    d1,1b            *d0=d0-1; if d0!=-1 goto _CHAINCOLOR_L2
  389.     lea    1024-16*2(a0),a0
  390.     dbra    d2,2b            *d2=d2-1; if d2!=-1 goto _CHAINCOLOR_L1
  391.     rts
  392.  
  393.  
  394. *-----------------------------------------------*
  395. *                        *
  396. *       ZOOM 用                *
  397. *                        *
  398. *    GG8PSET_64_S(IADDS,c)        *
  399. *        SUPER                *
  400. *    x,y から  8*8を書く            *
  401. *-----------------------------------------------*
  402.         .globl        _GG8PSET_64_S
  403. _GG8PSET_64_S:
  404.     movea.l    4(sp),a0
  405.     move.w    8+2(sp),d0
  406.     swap    d0
  407.     move.w    8+2(sp),d0
  408.     move.l    d0,d1
  409.     move.l    d0,d2
  410.     move.l    d0,a1
  411.     movem.l    d0-d2/a1,(a0)
  412.     movem.l    d0-d2/a1,1024*1(a0)
  413.     movem.l    d0-d2/a1,1024*2(a0)
  414.     movem.l    d0-d2/a1,1024*3(a0)
  415.     movem.l    d0-d2/a1,1024*4(a0)
  416.     movem.l    d0-d2/a1,1024*5(a0)
  417.     movem.l    d0-d2/a1,1024*6(a0)
  418.     movem.l    d0-d2/a1,1024*7(a0)
  419.     rts
  420. *-----------------------------------------------*
  421. *                        *
  422. *       ZOOM 用                *
  423. *                        *
  424. *    GG4PSET_64_S(IADDS,c)        *
  425. *        SUPER                *
  426. *    x,y から  4*4を書く            *
  427. *-----------------------------------------------*
  428.         .globl        _GG4PSET_64_S
  429. _GG4PSET_64_S:
  430.     movea.l    4(sp),a0
  431.     move.w    8+2(sp),d0
  432.     swap    d0
  433.     move.w    8+2(sp),d0
  434.     move.l    d0,(a0)
  435.     move.l    d0,4(a0)
  436.     move.l    d0,1024*1(a0)
  437.     move.l    d0,1024*1+4(a0)
  438.     move.l    d0,1024*2(a0)
  439.     move.l    d0,1024*2+4(a0)
  440.     move.l    d0,1024*3(a0)
  441.     move.l    d0,1024*3+4(a0)
  442.     rts
  443. *-----------------------------------------------*
  444. *                        *
  445. *       ZOOM 用                *
  446. *                        *
  447. *    GG2PSET_64_S(IADDS,c)        *
  448. *        SUPER                *
  449. *    x,y から  2*2を書く            *
  450. *-----------------------------------------------*
  451.         .globl        _GG2PSET_64_S
  452. _GG2PSET_64_S:
  453.     movea.l    4(sp),a0
  454.     move.w    8+2(sp),d0
  455.     swap    d0
  456.     move.w    8+2(sp),d0
  457.     move.l    d0,(a0)
  458.     move.l    d0,1024*1(a0)
  459.     rts
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477. .if 0
  478.  
  479. *-----------------------------------------------*
  480. *                        *
  481. *    TXHMOJI_S(x,y,fadds)        *
  482. *        スーパーバイザ専用        *
  483. *        *TVADDS に 6×12文字を書く    *
  484. *        * 半角のみ            *
  485. *                        *
  486. *-----------------------------------------------*
  487.         .globl        _TXHMOJI_S
  488. _TXHMOJI_S:
  489.     link    a6,#0
  490.     movem.l    d3-d6,-(sp)
  491.     lea    $E00000,a1
  492.     move.l    #$20000,d3
  493.     move.l    #$40000,d4
  494.     move.l    #$60000,d5
  495.     move.l    12(a6),d0
  496.     lsl.l    #7,d0        * x128
  497.     adda.l    d0,a1        * adds
  498.     move.l    8(a6),d0
  499.     lsr.l    #3,d0        * /8
  500.     adda.l    d0,a1        * adds
  501.     move.l    8(a6),d2
  502.     andi.l    #7,d2        * offset 値
  503.     *
  504.     move.l    16(a6),a0
  505.     addq.l    #4,a0        * データ
  506.     moveq    #12-1,d1
  507. 1:    *
  508.     move.b    (a0)+,d0
  509.     not.b    d0
  510.     ori.l    #$FFFFFF03,d0
  511.     ror.l    d2,d0        * ずらす
  512.     and.b    d0,(a1)
  513.     and.b    d0,(a1,d3.l)
  514. *    and.b    d0,(a1,d4.l)
  515. *    and.b    d0,(a1,d5.l)
  516.     rol.l    #8,d0
  517.     and.b    d0,1(a1)
  518.     and.b    d0,1(a1,d3.l)
  519. *    and.b    d0,1(a1,d4.l)
  520. *    and.b    d0,1(a1,d5.l)
  521.     lea    128(a1),a1    * y++
  522.     dbra    d1,1b
  523.     movem.l    (sp)+,d3-d6
  524.     unlk    a6
  525.     rts
  526.  
  527. *-----------------------------------------------*
  528. *                        *
  529. *    TXZMOJI_S(x,y,fadds)        *
  530. *        スーパーバイザ専用        *
  531. *        *TVADDS に 12×12文字を書く    *
  532. *        * 全角のみ            *
  533. *                        *
  534. *-----------------------------------------------*
  535.         .globl        _TXZMOJI_S
  536. _TXZMOJI_S:
  537.     link    a6,#0
  538.     movem.l    d3-d6,-(sp)
  539.     lea    $E00000,a1
  540.     move.l    #$20000,d3
  541.     move.l    #$40000,d4
  542.     move.l    #$60000,d5
  543.     move.l    12(a6),d0
  544.     lsl.l    #7,d0        * x128
  545.     adda.l    d0,a1        * adds
  546.     move.l    8(a6),d0
  547.     lsr.l    #3,d0        * /8
  548.     adda.l    d0,a1        * adds
  549.     move.l    8(a6),d2
  550.     andi.l    #7,d2        * offset 値
  551.     *
  552.     move.l    16(a6),a0
  553.     addq.l    #4,a0        * データ
  554.     moveq    #12-1,d1
  555. 1:    *
  556.     move.w    (a0)+,d0
  557.     not.w    d0
  558.     ori.l    #$FFFF000F,d0
  559.     ror.l    #8,d0
  560.     ror.l    d2,d0        * ずらす
  561.     and.b    d0,(a1)
  562.     and.b    d0,(a1,d3.l)
  563. *    and.b    d0,(a1,d4.l)
  564. *    and.b    d0,(a1,d5.l)
  565.     rol.l    #8,d0
  566.     and.b    d0,1(a1)
  567.     and.b    d0,1(a1,d3.l)
  568. *    and.b    d0,1(a1,d4.l)
  569. *    and.b    d0,1(a1,d5.l)
  570.     rol.l    #8,d0
  571.     and.b    d0,2(a1)
  572.     and.b    d0,2(a1,d3.l)
  573. *    and.b    d0,2(a1,d4.l)
  574. *    and.b    d0,2(a1,d5.l)
  575.     lea    128(a1),a1    * y++
  576.     dbra    d1,1b
  577.     movem.l    (sp)+,d3-d6
  578.     unlk    a6
  579.     rts
  580.  
  581.  
  582. *-----------------------------------------------*
  583. *                        *
  584. *    TXPCG16_(TVADDS,char)        *
  585. *    TXPCG16_S_(TVADDS,char)    *
  586. *        スーパーバイザ専用        *
  587. *        *TXPCG16_BUFFから16×16で書く    *
  588. *                        *
  589. *-----------------------------------------------*
  590.         .globl        _TXPCG16_
  591.         .globl        _TXPCG16_S_
  592. _TXPCG16_:
  593.     link    a6,#0
  594.     movem.l    d3-d7,-(sp)
  595.     suba.l    a1,a1
  596.     SUPER                *SUPER MODE
  597.     move.l    d0,-(sp)
  598.  
  599.     bsr    _TXP_
  600.  
  601.     move.l    (sp)+,d0
  602.     bmi    @f
  603.     movea.l    d0,a1
  604.     USER                *USER MODE
  605. @@:
  606.     movem.l    (sp)+,d3-d7
  607.     unlk    a6
  608.     rts
  609.  
  610. _TXPCG16_S_:
  611.     link    a6,#0
  612.     movem.l    d3-d7,-(sp)
  613.     bsr    _TXP_
  614.     movem.l    (sp)+,d3-d7
  615.     unlk    a6
  616.     rts
  617.  
  618. _TXP_:
  619.     moveq    #$000F,d5
  620.     movea.l    8(a6),a0        *a0 = TVRAM ADDS
  621.     move.l    12(a6),d2        *d0= char
  622.     lsl.l    #7,d2            *d2<<=7(*128)
  623.     movea.l    _TXPCG16_BUFF,a1        *PCGパッファ
  624.     adda.l    d2,a1            *a1+=d2   キャラクターデータアドレス.a
  625.     *--- ノーマル ---*
  626.                     *a0   = VADDS
  627.                     *a1   = キャラクターデータアドレス
  628.  
  629.     moveq    #15,d3            *d3=8-1
  630. _NORMAL_L1:
  631.     * 16dot 分制作
  632.     moveq    #0,d4
  633.     moveq    #0,d5
  634.     moveq    #0,d6
  635.     moveq    #0,d7
  636.     *
  637.     moveq    #4-1,d1
  638. 1:    *
  639.     move.b    (a1)+,d0
  640.                     * d4,d5,d6,d7  プレーン 0-3 に当たる
  641.     roxl.b    #1,d0
  642.     roxl.w    #1,d4
  643.     roxl.b    #1,d0
  644.     roxl.w    #1,d5
  645.     roxl.b    #1,d0
  646.     roxl.w    #1,d6
  647.     roxl.b    #1,d0
  648.     roxl.w    #1,d7
  649.     *
  650.     roxl.b    #1,d0
  651.     roxl.w    #1,d4
  652.     roxl.b    #1,d0
  653.     roxl.w    #1,d5
  654.     roxl.b    #1,d0
  655.     roxl.w    #1,d6
  656.     roxl.b    #1,d0
  657.     roxl.w    #1,d7
  658.     *
  659.     dbra    d1,1b
  660.     *
  661.     lea    32*2-4(a1),a2
  662.     moveq    #4-1,d1
  663. 1:    *
  664.     move.b    (a2)+,d0
  665.     *
  666.     roxl.b    #1,d0            *
  667.     roxl.w    #1,d4
  668.     roxl.b    #1,d0            *
  669.     roxl.w    #1,d5
  670.     roxl.b    #1,d0            *
  671.     roxl.w    #1,d6
  672.     roxl.b    #1,d0            *
  673.     roxl.w    #1,d7
  674.     *
  675.     roxl.b    #1,d0            *
  676.     roxl.w    #1,d4
  677.     roxl.b    #1,d0            *
  678.     roxl.w    #1,d5
  679.     roxl.b    #1,d0            *
  680.     roxl.w    #1,d6
  681.     roxl.b    #1,d0            *
  682.     roxl.w    #1,d7
  683.     *
  684.     dbra    d1,1b
  685.     *
  686.     move.w    d7,(a0)            *a0 = TVRAM ADDS
  687.     movea.l    a0,a2
  688.     adda.l    #$20000,a2
  689.     move.w    d6,(a2)            *a0 = TVRAM ADDS
  690.     adda.l    #$20000,a2
  691.     move.w    d5,(a2)            *a0 = TVRAM ADDS
  692.     adda.l    #$20000,a2
  693.     move.w    d4,(a2)            *a0 = TVRAM ADDS
  694.  
  695.     lea    128(a0),a0
  696.  
  697.     dbra    d3,_NORMAL_L1        *d3=d3-1; if d3!=-1 goto _._L1
  698.     rts
  699.  
  700.  
  701. *-----------------------------------------------*
  702. *                        *
  703. *    TXMESHES_13(TVADDS)        *
  704. *        スーパーバイザ専用        *
  705. *        *TVADDSの16×16をメッシュにする    *
  706. *                (color=13)    *
  707. *-----------------------------------------------*
  708.         .globl        _TXMESHES_13
  709. _TXMESHES_13:
  710.     move.l    4(sp),a0
  711.     movea.l    a0,a1
  712.     movea.l    a0,a2
  713.     movea.l    #$20000,a1
  714.     add.l    #$40000,a2
  715.     move.w    #$aaaa,d1
  716.     move.w    #$5555,d2
  717.     moveq    #8-1,d0
  718. @@:    or.w    d1,(a0)
  719.     and.w    d2,(a0,a1.l)
  720.     or.w    d1,(a2)
  721.     or.w    d1,(a2,a1.l)
  722.     lea    128(a0),a0
  723.     lea    128(a2),a2
  724.     or.w    d2,(a0)
  725.     and.w    d1,(a0,a1.l)
  726.     or.w    d2,(a2)
  727.     or.w    d2,(a2,a1.l)
  728.     lea    128(a0),a0
  729.     lea    128(a2),a2
  730.     dbra    d0,@b
  731.     rts
  732.  
  733. *-----------------------------------------------*
  734. *                        *
  735. *    TXREV_H(x,y)            *
  736. *        スーパーバイザ専用        *
  737. *        *TVADDSの6×12を反転メッシュにする*
  738. *                (color=13)    *
  739. *-----------------------------------------------*
  740.         .globl        _TXREV_H
  741.         .globl        _TXREV_H_S
  742. _TXREV_H:
  743.     link    a6,#0
  744.     movem.l    d3-d6,-(sp)
  745.     suba.l    a1,a1
  746.     IOCS    _B_SUPER
  747.     move.l    d0,-(sp)
  748.     lea    $E00000,a1
  749.     move.l    #$20000,d3
  750.     move.l    #$40000,d4
  751.     move.l    #$60000,d5
  752.     move.l    12(a6),d0
  753.     lsl.l    #7,d0        * x128
  754.     adda.l    d0,a1        * adds
  755.     move.l    8(a6),d0
  756.     lsr.l    #3,d0        * /8
  757.     adda.l    d0,a1        * adds
  758.     move.l    8(a6),d2
  759.     andi.l    #7,d2        * offset 値
  760.     move.l    #$000000FC,d0
  761.     ror.l    d2,d0        * ずらす
  762.     move.l    d0,d2
  763.     rol.l    #8,d2
  764.     *
  765.     moveq    #12-1,d1
  766. 1:    *
  767.     eor.b    d0,(a1)
  768.     eor.b    d0,(a1,d3.l)
  769.     eor.b    d0,(a1,d4.l)
  770.     eor.b    d0,(a1,d5.l)
  771.     eor.b    d2,1(a1)
  772.     eor.b    d2,1(a1,d3.l)
  773.     eor.b    d2,1(a1,d4.l)
  774.     eor.b    d2,1(a1,d5.l)
  775.     lea    128(a1),a1    * y++
  776.     dbra    d1,1b
  777.     *
  778.     move.l    (sp)+,d0
  779.     bmi    @f
  780.     movea.l    d0,a1
  781.     IOCS    _B_SUPER
  782. @@:
  783.     movem.l    (sp)+,d3-d6
  784.     unlk    a6
  785.     rts
  786.  
  787.  
  788. _TXREV_H_S:
  789.     link    a6,#0
  790.     movem.l    d3-d6,-(sp)
  791.     lea    $E00000,a1
  792.     move.l    #$20000,d3
  793.     move.l    #$40000,d4
  794.     move.l    #$60000,d5
  795.     move.l    12(a6),d0
  796.     lsl.l    #7,d0        * x128
  797.     adda.l    d0,a1        * adds
  798.     move.l    8(a6),d0
  799.     lsr.l    #3,d0        * /8
  800.     adda.l    d0,a1        * adds
  801.     move.l    8(a6),d2
  802.     andi.l    #7,d2        * offset 値
  803.     move.l    #$000000FC,d0
  804.     ror.l    d2,d0        * ずらす
  805.     move.l    d0,d2
  806.     rol.l    #8,d2
  807.     *
  808.     moveq    #12-1,d1
  809. 1:    *
  810.     eor.b    d0,(a1)
  811.     eor.b    d0,(a1,d3.l)
  812.     eor.b    d0,(a1,d4.l)
  813.     eor.b    d0,(a1,d5.l)
  814.     eor.b    d2,1(a1)
  815.     eor.b    d2,1(a1,d3.l)
  816.     eor.b    d2,1(a1,d4.l)
  817.     eor.b    d2,1(a1,d5.l)
  818.     lea    128(a1),a1    * y++
  819.     dbra    d1,1b
  820.     movem.l    (sp)+,d3-d6
  821.     unlk    a6
  822.     rts
  823.  
  824. .endif
  825.  
  826.  
  827. *--------------------------------*
  828.  
  829.     .globl        _PalTable
  830. _PalTable:
  831.     .dc.w    $0000,$0842,$B7B7,$DFC0,$0000,$6036,$a840,$07C0
  832.     .dc.w    $0001,$0842,$4210,$6B5A,$8420,$AD6A,$D6B4,$FFFE
  833.  
  834.  
  835. *--------------------------------*
  836.  
  837.     .globl        _GGSP16_64_BUFF
  838.     .xref        L000000
  839. _GGSP16_64_BUFF:
  840.     dc.l        L000000
  841.  
  842.     .globl        _TTL_DATA
  843.     .xref        _S000000
  844. _TTL_DATA:
  845.     dc.l        _S000000
  846.  
  847. *--------------------------------*
  848.  
  849.         .globl        _MapAdds
  850.         .xref        _L000000
  851. _MapAdds:
  852.     .dc.l    _L000000
  853.  
  854. *--------------------------------*
  855.  
  856. *        .globl        _SpAdds
  857. *        .xref        _S000000
  858. *_SpAdds:
  859. *    .dc.l    _S000000
  860.  
  861. *------------------------------------- 以下、X68 の本より頂き改造もの
  862.  
  863. MINMAX    macro    Y,X        *x=max(x,y),y=min(x,y)
  864.     local    skip
  865.     cmp.l    Y,X
  866.     bge    skip
  867.     exg.l    Y,X
  868. skip:
  869.     .endm
  870.  
  871. _sort5intM::
  872.     movem.l    4(sp),d0-d2/a0-a1
  873.     MINMAX    d2,d1
  874.     MINMAX    d2,d0
  875.     MINMAX    d2,a0
  876.     MINMAX    d2,a1
  877.  
  878.     MINMAX    d1,d0
  879.     MINMAX    d1,a0
  880.     MINMAX    d1,a1
  881.  
  882.     MINMAX    d0,a0
  883.     MINMAX    d0,a1
  884.     rts
  885.  
  886.     *--------------------------------------------------------*
  887.  
  888.     .globl    _FncKeyJX
  889.     .globl    _FncKeyOrg
  890. _FncKeyJX:
  891.     .dc.b    $02,0,0,0, 0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0    *F1
  892.     .dc.b    $04,0,0,0, 0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0
  893.     .dc.b    $00,0,0,0, 0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0
  894.     .dc.b    $00,0,0,0, 0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0
  895.     .dc.b    $00,0,0,0, 0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0
  896.  
  897.     .dc.b    $16,0,0,0, 0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0    *F6
  898.     .dc.b    $17,0,0,0, 0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0
  899.     .dc.b    $18,0,0,0, 0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0
  900.     .dc.b    $19,0,0,0, 0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0
  901.     .dc.b    $15,0,0,0, 0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0    *F10
  902.  
  903.     .dc.b    $00,0,0,0, 0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0    *F11
  904.     .dc.b    $05,0,0,0, 0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0
  905.     .dc.b    $00,0,0,0, 0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0
  906.     .dc.b    $00,0,0,0, 0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0
  907.     .dc.b    $00,0,0,0, 0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0
  908.  
  909.     .dc.b    $00,0,0,0, 0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0    *F16
  910.     .dc.b    $00,0,0,0, 0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0
  911.     .dc.b    $00,0,0,0, 0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0
  912.     .dc.b    $00,0,0,0, 0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0
  913.     .dc.b    $06,0,0,0, 0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0    *F20
  914.  
  915.     .dc.b    $14,0,0,0,0,0    * ROLLUP
  916.     .dc.b    $0F,0,0,0,0,0    * ROLLDN
  917.     .dc.b    $00,0,0,0,0,0    * INS
  918.     .dc.b    $07,0,0,0,0,0    * DEL
  919.     .dc.b    $1E,0,0,0,0,0    * UP
  920.     .dc.b    $1D,0,0,0,0,0    * LEFT
  921.     .dc.b    $1C,0,0,0,0,0    * RIGHT
  922.     .dc.b    $1F,0,0,0,0,0    * DOWN
  923.     .dc.b    $0C,0,0,0,0,0    * CLR
  924.     .dc.b    $00,0,0,0,0,0    * HELP
  925.     .dc.b    $0B,0,0,0,0,0    * HOME
  926.     .dc.b    $12,0,0,0,0,0    * UNDO
  927.     .even
  928. _FncKeyOrg:
  929.     .ds.b    712    * 控え用
  930.     .even
  931.  
  932.  
  933.  
  934.  
  935.